// Replace this section below with the button you want to simulate.
// ===============================================================================
// ============ THIS IS CHERRY MX BLACK ==========
// ============ Set the travel range according to your simulation target =========
int travel_range = 4000;

// ============= Button Data ==============
float button_v0_Down[] = {10.000,10.000,16.770,27.408,27.256,32.302,36.672,44.762,44.894,45.308,45.858,46.274,47.064,47.220,47.792,48.630,48.674,49.572,49.852,50.734,51.002,51.766,52.628,53.208,53.494,53.532,54.042,54.578,55.038,55.468,55.874,56.354,56.978,57.656,58.026,58.788,59.350,60.046,60.744,61.662,62.300,63.090,63.684,64.424,65.472,65.804,66.884,67.130,67.906,68.780,69.258,69.546,70.108,70.648,70.880,71.796,71.796,73.348,74.850,76.250,76.942,77.854,78.618,79.162,80.378,81.294,82.104,82.562,83.440,84.362,85.106,85.840,86.674,86.990,87.874,89.078,88.510,89.986,90.298,91.646,92.228};
float button_v0_Up[] =   {10.000,10.000,10.000,10.000,10.000,14.084,26.150,26.874,27.224,27.914,28.384,28.648,29.422,29.594,29.846,30.730,31.292,32.018,32.766,33.684,34.562,34.826,35.320,35.850,36.434,37.240,37.504,38.360,38.818,39.272,39.888,40.278,40.888,41.430,42.004,42.630,43.362,44.160,44.464,45.102,46.022,46.764,47.076,47.886,48.440,48.962,49.618,50.010,50.440,51.134,51.634,51.782,52.076,52.884,53.460,53.842,54.662,56.328,57.112,57.964,58.568,58.844,59.266,59.390,60.214,60.644,60.686,61.428,61.606,61.948,62.466,63.296,63.600,63.758,65.356,66.606,66.268,66.602,67.168,66.962,66.962};
float button_v1_Down[] = {10.000,11.862,18.120,25.273,27.204,31.745,35.815,41.471,42.764,43.794,44.566,45.080,45.695,45.966,46.441,47.059,47.308,48.017,48.436,49.152,49.535,50.146,50.804,51.334,51.730,52.029,52.626,53.327,54.061,54.789,55.454,56.093,56.757,57.401,57.840,58.447,58.989,59.675,60.412,61.222,61.797,62.391,62.939,63.693,64.713,65.406,66.448,67.080,68.062,69.237,70.332,71.328,72.306,73.027,73.372,73.958,74.132,75.213,76.398,77.614,78.516,79.543,80.479,81.255,82.309,83.181,84.022,84.752,85.764,86.809,87.695,88.474,89.243,89.761,90.620,91.694,91.889,93.045,93.503,94.354,94.721};
float button_v1_Up[] =   {10.000,10.000,10.000,11.303,16.900,20.593,28.178,29.928,31.272,32.565,33.560,34.297,35.147,35.570,35.944,36.600,37.107,37.724,38.373,39.121,39.849,40.256,40.752,41.234,41.712,42.284,42.597,43.243,43.725,44.219,44.803,45.302,45.955,46.599,47.248,47.885,48.550,49.247,49.698,50.301,51.026,51.669,52.139,52.910,53.597,54.305,55.132,55.901,56.755,57.751,58.586,59.136,59.654,60.355,60.900,61.333,61.985,63.073,63.756,64.545,65.299,65.948,66.662,67.166,67.950,68.492,68.822,69.490,69.838,70.169,70.434,70.709,70.682,70.707,71.695,72.743,73.110,73.766,74.393,74.479,74.555};
float button_v2_Down[] = {14.981,16.590,19.471,23.137,27.152,31.187,34.958,38.181,40.635,42.279,43.275,43.886,44.327,44.713,45.089,45.487,45.941,46.461,47.021,47.570,48.069,48.526,48.980,49.459,49.966,50.527,51.210,52.075,53.085,54.110,55.033,55.832,56.535,57.146,57.653,58.106,58.628,59.304,60.080,60.783,61.295,61.692,62.194,62.962,63.955,65.007,66.013,67.030,68.218,69.695,71.407,73.110,74.504,75.406,75.864,76.120,76.468,77.077,77.946,78.977,80.089,81.232,82.340,83.348,84.239,85.069,85.939,86.942,88.088,89.257,90.284,91.108,91.811,92.533,93.366,94.310,95.269,96.104,96.708,97.062,97.214};
float button_v2_Up[] =   {14.015,15.312,17.634,20.590,23.830,27.101,30.207,32.981,35.319,37.215,38.736,39.945,40.872,41.547,42.043,42.471,42.922,43.429,43.981,44.558,45.136,45.686,46.185,46.618,46.990,47.328,47.691,48.127,48.633,49.167,49.719,50.327,51.022,51.769,52.491,53.140,53.738,54.334,54.933,55.501,56.031,56.574,57.201,57.935,58.755,59.648,60.646,61.793,63.070,64.367,65.537,66.491,67.232,67.825,68.339,68.824,69.308,69.818,70.400,71.126,72.030,73.051,74.059,74.943,75.685,76.339,76.958,77.553,78.069,78.390,78.402,78.121,77.764,77.657,78.033,78.881,79.952,80.930,81.617,81.996,82.149};
float button_v3_Down[] = {13.977,15.261,17.562,20.491,23.705,26.954,30.044,32.792,35.069,36.850,38.221,39.323,40.279,41.186,42.123,43.151,44.286,45.462,46.564,47.491,48.204,48.734,49.148,49.514,49.883,50.321,50.905,51.674,52.569,53.462,54.253,54.931,55.522,56.019,56.388,56.654,56.928,57.328,57.894,58.605,59.461,60.505,61.744,63.072,64.301,65.282,66.001,66.567,67.146,67.887,68.870,70.069,71.355,72.547,73.509,74.231,74.821,75.413,76.089,76.871,77.775,78.801,79.883,80.903,81.779,82.537,83.312,84.256,85.421,86.686,87.837,88.733,89.372,89.833,90.215,90.595,91.013,91.464,91.902,92.260,92.463};
float button_v3_Up[] =   {14.252,15.626,18.085,21.218,24.652,28.124,31.419,34.335,36.722,38.547,39.902,40.933,41.749,42.404,42.936,43.397,43.832,44.263,44.678,45.081,45.484,45.889,46.276,46.619,46.906,47.148,47.386,47.663,48.007,48.418,48.876,49.355,49.835,50.303,50.755,51.180,51.570,51.943,52.341,52.800,53.325,53.907,54.543,55.223,55.925,56.645,57.448,58.462,59.776,61.330,62.916,64.317,65.444,66.348,67.123,67.807,68.379,68.844,69.297,69.886,70.685,71.627,72.556,73.344,73.956,74.411,74.710,74.814,74.672,74.260,73.616,72.888,72.356,72.371,73.216,74.936,77.224,79.529,81.346,82.469,82.964};
float button_v4_Down[]=  {12.973,13.933,15.653,17.845,20.257,22.721,25.129,27.403,29.502,31.420,33.168,34.760,36.231,37.659,39.157,40.816,42.631,44.463,46.107,47.412,48.339,48.942,49.316,49.568,49.800,50.115,50.600,51.272,52.052,52.813,53.473,54.030,54.509,54.891,55.122,55.201,55.229,55.352,55.707,56.426,57.627,59.318,61.294,63.182,64.647,65.557,65.988,66.104,66.074,66.080,66.334,67.028,68.205,69.687,71.154,72.341,73.173,73.750,74.232,74.765,75.461,76.370,77.426,78.458,79.318,80.004,80.685,81.571,82.755,84.114,85.389,86.359,86.933,87.133,87.063,86.880,86.758,86.824,87.096,87.457,87.713};
float button_v4_Up[]=    {14.489,15.940,18.537,21.845,25.475,29.148,32.631,35.690,38.126,39.878,41.068,41.921,42.626,43.262,43.830,44.322,44.743,45.096,45.376,45.604,45.832,46.092,46.368,46.620,46.821,46.969,47.081,47.198,47.381,47.669,48.033,48.384,48.648,48.837,49.018,49.219,49.401,49.551,49.749,50.099,50.620,51.241,51.885,52.511,53.095,53.641,54.249,55.130,56.481,58.293,60.296,62.144,63.655,64.871,65.907,66.790,67.450,67.870,68.193,68.645,69.340,70.204,71.053,71.744,72.226,72.484,72.463,72.075,71.275,70.130,68.830,67.655,66.949,67.085,68.400,70.991,74.496,78.128,81.076,82.941,83.779};
float button_v5_Down[] = {13.225,14.267,16.134,18.513,21.138,23.835,26.511,29.106,31.588,33.916,36.029,37.863,39.413,40.734,41.912,43.011,44.074,45.098,46.033,46.812,47.402,47.834,48.195,48.575,49.025,49.552,50.144,50.773,51.382,51.919,52.379,52.806,53.260,53.757,54.257,54.700,55.067,55.412,55.871,56.623,57.800,59.383,61.163,62.844,64.210,65.212,65.925,66.452,66.857,67.177,67.476,67.877,68.495,69.317,70.188,70.921,71.401,71.618,71.672,71.781,72.211,73.126,74.462,75.961,77.369,78.588,79.665,80.661,81.588,82.426,83.177,83.876,84.541,85.115,85.506,85.674,85.704,85.767,85.993,86.338,86.601};
float button_v5_Up[] =   {15.203,16.885,19.894,23.723,27.910,32.102,35.986,39.246,41.659,43.230,44.197,44.871,45.448,45.981,46.462,46.892,47.298,47.700,48.083,48.410,48.657,48.827,48.971,49.192,49.603,50.223,50.891,51.345,51.460,51.385,51.404,51.674,52.166,52.794,53.511,54.264,54.969,55.600,56.236,57.015,58.043,59.329,60.779,62.253,63.624,64.831,65.906,66.963,68.106,69.311,70.427,71.325,72.003,72.541,72.989,73.329,73.541,73.678,73.882,74.303,75.013,75.980,77.077,78.155,79.099,79.855,80.393,80.674,80.641,80.260,79.582,78.798,78.213,78.137,78.767,80.111,81.977,84.036,85.927,87.355,88.118};
float button_v6_Down[] = {13.477,14.601,16.614,19.181,22.018,24.949,27.892,30.810,33.675,36.413,38.889,40.966,42.594,43.810,44.667,45.207,45.517,45.733,45.959,46.213,46.465,46.726,47.073,47.582,48.250,48.988,49.688,50.273,50.712,51.025,51.284,51.583,52.011,52.623,53.391,54.198,54.905,55.473,56.035,56.819,57.974,59.449,61.032,62.505,63.772,64.866,65.862,66.800,67.640,68.273,68.617,68.727,68.786,68.947,69.222,69.502,69.630,69.486,69.112,68.797,68.961,69.882,71.497,73.464,75.420,77.171,78.645,79.752,80.422,80.738,80.965,81.394,82.149,83.097,83.949,84.469,84.650,84.710,84.890,85.218,85.490};
float button_v6_Up[] =   {15.917,17.830,21.251,25.600,30.344,35.057,39.341,42.803,45.193,46.581,47.327,47.822,48.271,48.701,49.093,49.461,49.853,50.305,50.790,51.216,51.481,51.562,51.574,51.764,52.385,53.477,54.701,55.492,55.539,55.102,54.774,54.964,55.683,56.751,58.005,59.309,60.538,61.650,62.723,63.931,65.466,67.417,69.674,71.995,74.153,76.021,77.563,78.796,79.732,80.329,80.557,80.505,80.351,80.211,80.071,79.869,79.631,79.487,79.572,79.961,80.686,81.755,83.101,84.566,85.972,87.226,88.324,89.273,90.006,90.389,90.335,89.941,89.477,89.189,89.134,89.231,89.459,89.944,90.778,91.768,92.458};
float button_v7_Down[] = {12.045,12.707,13.891,15.407,17.097,18.895,20.824,22.974,25.441,28.253,31.326,34.513,37.656,40.570,43.013,44.781,45.879,46.547,47.100,47.738,48.506,49.380,50.349,51.409,52.504,53.508,54.308,54.865,55.209,55.397,55.502,55.612,55.812,56.145,56.574,57.012,57.395,57.743,58.167,58.797,59.697,60.842,62.175,63.659,65.257,66.872,68.340,69.525,70.404,71.096,71.819,72.803,74.153,75.742,77.260,78.415,79.080,79.317,79.324,79.370,79.709,80.482,81.647,82.983,84.206,85.130,85.768,86.260,86.756,87.352,88.075,88.888,89.696,90.361,90.778,90.947,90.999,91.141,91.499,91.989,92.347};
float button_v7_Up[] =   {15.476,17.247,20.415,24.448,28.869,33.329,37.546,41.255,44.262,46.542,48.240,49.566,50.663,51.572,52.267,52.719,52.978,53.218,53.636,54.276,54.913,55.225,55.111,54.828,54.761,55.064,55.573,56.063,56.513,57.067,57.813,58.694,59.636,60.623,61.623,62.532,63.282,63.911,64.511,65.142,65.882,66.841,68.058,69.439,70.855,72.252,73.662,75.103,76.499,77.689,78.513,78.939,79.085,79.136,79.203,79.315,79.503,79.853,80.447,81.326,82.523,84.041,85.761,87.425,88.790,89.790,90.511,91.016,91.222,90.993,90.307,89.344,88.415,87.794,87.582,87.731,88.200,89.044,90.266,91.581,92.458};
float button_v8_Down[] = {10.613,10.812,11.168,11.632,12.176,12.841,13.756,15.137,17.208,20.093,23.763,28.059,32.718,37.330,41.358,44.355,46.241,47.362,48.241,49.263,50.547,52.034,53.624,55.236,56.758,58.028,58.927,59.456,59.706,59.769,59.721,59.641,59.614,59.668,59.757,59.826,59.885,60.013,60.299,60.775,61.420,62.235,63.319,64.814,66.743,68.878,70.819,72.251,73.169,73.920,75.021,76.878,79.520,82.536,85.298,87.328,88.530,89.149,89.536,89.943,90.456,91.081,91.796,92.503,92.991,93.089,92.892,92.768,93.091,93.967,95.185,96.383,97.242,97.624,97.607,97.424,97.348,97.572,98.109,98.759,99.204};
float button_v8_Up[] =   {15.036,16.664,19.579,23.295,27.393,31.601,35.750,39.706,43.331,46.503,49.154,51.309,53.054,54.443,55.442,55.978,56.104,56.130,56.483,57.335,58.344,58.889,58.648,57.892,57.137,56.651,56.445,56.634,57.486,59.032,60.852,62.425,63.589,64.495,65.240,65.756,66.025,66.172,66.298,66.353,66.299,66.266,66.441,66.883,67.556,68.483,69.762,71.410,73.266,75.048,76.470,77.372,77.819,78.060,78.336,78.760,79.375,80.220,81.322,82.691,84.360,86.328,88.422,90.285,91.608,92.353,92.699,92.758,92.438,91.597,90.279,88.746,87.353,86.399,86.030,86.230,86.941,88.145,89.753,91.394,92.458};
float button_v9_Down[] = {10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.000,11.933,16.200,21.605,27.780,34.090,39.703,43.929,46.603,48.177,49.382,50.788,52.588,54.688,56.900,59.063,61.012,62.548,63.546,64.047,64.203,64.141,63.939,63.670,63.415,63.191,62.940,62.640,62.375,62.283,62.431,62.753,63.143,63.628,64.463,65.968,68.228,70.884,73.298,74.977,75.933,76.744,78.223,80.953,84.887,89.331,93.336,96.241,97.980,98.981,99.748,100.516,101.204,101.680,101.946,102.023,101.776,101.048,100.016,99.276,99.425,100.582,102.295,103.877,104.788,104.887,104.436,103.902,103.697,104.003,104.718,105.529,106.061};
float button_v9_Up[] =   {14.595,16.081,18.743,22.143,25.918,29.873,33.954,38.158,42.400,46.464,50.068,53.052,55.446,57.314,58.617,59.237,59.230,59.043,59.329,60.395,61.776,62.553,62.185,60.956,59.513,58.238,57.317,57.205,58.459,60.997,63.891,66.155,67.542,68.367,68.857,68.980,68.769,68.433,68.085,67.564,66.716,65.691,64.825,64.327,64.257,64.714,65.862,67.717,70.033,72.407,74.427,75.805,76.553,76.984,77.469,78.206,79.247,80.587,82.197,84.056,86.197,88.615,91.082,93.144,94.426,94.916,94.886,94.500,93.654,92.201,90.251,88.148,86.291,85.004,84.478,84.730,85.682,87.245,89.240,91.207,92.458};

// ============ Vibration settings ============
bool if_vib = false;
int vib_point_1 = 5000;    // will not activate anything
int vib_point_2 = 5000;    // will not activate anything

int vib_file0 = 0; // will not activate anything
int vib_file1 = 0;
int vib_file2 = 0;
int vib_file3 = 0;
int vib_file4 = 0;
int vib_file5 = 0;
int vib_file6 = 0;
int vib_file7 = 0;
int vib_file8 = 0;
int vib_file9 = 0;

// ===============================================================================
// Replace the section above